home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2001 May / SGI IRIX Base Documentation 2001 May.iso / usr / share / catman / p_man / cat3 / libblas / syr2k.z / syr2k
Encoding:
Text File  |  1998-10-30  |  19.1 KB  |  331 lines

  1.  
  2.  
  3.  
  4. ____SSSSYYYYRRRR2222KKKK((((3333FFFF))))                                                          ____SSSSYYYYRRRR2222KKKK((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      dsyr2k, ssyr2k, zsyr2k, csyr2k - BLAS level three  Symmetric Rank 2K
  10.      Update.
  11.  
  12.  
  13. FFFFOOOORRRRTTTTRRRRAAAANNNN 77777777 SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  14.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ddddssssyyyyrrrr2222kkkk((((uuuupppplllloooo,,,,ttttrrrraaaannnnssss,,,,nnnn,,,,kkkk,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc))))
  15.            cccchhhhaaaarrrraaaacccctttteeeerrrr****1111        uuuupppplllloooo,,,, ttttrrrraaaannnnssss
  16.            iiiinnnntttteeeeggggeeeerrrr            nnnn,,,, kkkk,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc
  17.            ddddoooouuuubbbblllleeee pppprrrreeeecccciiiissssiiiioooonnnn   aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
  18.            ddddoooouuuubbbblllleeee pppprrrreeeecccciiiissssiiiioooonnnn   aaaa(((( llllddddaaaa,,,,****)))),,,, bbbb(((( llllddddbbbb,,,,****)))),,,, cccc((((llllddddcccc,,,,****))))
  19.  
  20.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ssssssssyyyyrrrr2222kkkk((((uuuupppplllloooo,,,,ttttrrrraaaannnnssss,,,,nnnn,,,,kkkk,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc))))
  21.            cccchhhhaaaarrrraaaacccctttteeeerrrr****1111        uuuupppplllloooo,,,, ttttrrrraaaannnnssss
  22.            iiiinnnntttteeeeggggeeeerrrr            nnnn,,,, kkkk,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc
  23.            rrrreeeeaaaallll               aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
  24.            rrrreeeeaaaallll               aaaa(((( llllddddaaaa,,,,****)))),,,, bbbb(((( llllddddbbbb,,,,****)))),,,, cccc((((llllddddcccc,,,,****))))
  25.  
  26.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee zzzzssssyyyyrrrr2222kkkk((((uuuupppplllloooo,,,,ttttrrrraaaannnnssss,,,,nnnn,,,,kkkk,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc))))
  27.            cccchhhhaaaarrrraaaacccctttteeeerrrr****1111        uuuupppplllloooo,,,, ttttrrrraaaannnnssss
  28.            iiiinnnntttteeeeggggeeeerrrr            nnnn,,,, kkkk,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc
  29.            ddddoooouuuubbbblllleeee ccccoooommmmpppplllleeeexxxx     aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
  30.            ddddoooouuuubbbblllleeee ccccoooommmmpppplllleeeexxxx     aaaa(((( llllddddaaaa,,,,****)))),,,, bbbb(((( llllddddbbbb,,,,****)))),,,, cccc((((llllddddcccc,,,,****))))
  31.  
  32.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ccccssssyyyyrrrr2222kkkk((((uuuupppplllloooo,,,,ttttrrrraaaannnnssss,,,,nnnn,,,,kkkk,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc))))
  33.            cccchhhhaaaarrrraaaacccctttteeeerrrr****1111        uuuupppplllloooo,,,, ttttrrrraaaannnnssss
  34.            iiiinnnntttteeeeggggeeeerrrr            nnnn,,,, kkkk,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc
  35.            ccccoooommmmpppplllleeeexxxx            aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
  36.            ccccoooommmmpppplllleeeexxxx            aaaa(((( llllddddaaaa,,,,****)))),,,, bbbb(((( llllddddbbbb,,,,****)))),,,, cccc((((llllddddcccc,,,,****))))
  37.  
  38.  
  39.  
  40. CCCC SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  41.      vvvvooooiiiidddd ddddssssyyyyrrrr2222kkkk((((uuuupppplllloooo,,,,ttttrrrraaaannnnssss,,,,nnnn,,,,kkkk,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc))))
  42.            MMMMaaaattttrrrriiiixxxxTTTTrrrriiiiaaaannnngggglllleeee     uuuupppplllloooo;;;;
  43.            MMMMaaaattttrrrriiiixxxxTTTTrrrraaaannnnssssppppoooosssseeee    ttttrrrraaaannnnssss;;;;
  44.            IIIInnnntttteeeeggggeeeerrrr            nnnn,,,, kkkk,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc;;;;
  45.            ddddoooouuuubbbblllleeee             aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa;;;;
  46.            ddddoooouuuubbbblllleeee             ((((****aaaa))))[[[[llllddddaaaa****kkkk]]]],,,, ((((****bbbb))))[[[[llllddddaaaa****kkkk]]]],,,, ((((****cccc))))[[[[llllddddaaaa****nnnn]]]];;;;
  47.  
  48.      vvvvooooiiiidddd ssssssssyyyyrrrr2222kkkk((((uuuupppplllloooo,,,,ttttrrrraaaannnnssss,,,,nnnn,,,,kkkk,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc))))
  49.            MMMMaaaattttrrrriiiixxxxTTTTrrrriiiiaaaannnngggglllleeee     uuuupppplllloooo;;;;
  50.            MMMMaaaattttrrrriiiixxxxTTTTrrrraaaannnnssssppppoooosssseeee    ttttrrrraaaannnnssss;;;;
  51.            IIIInnnntttteeeeggggeeeerrrr            nnnn,,,, kkkk,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc;;;;
  52.            ffffllllooooaaaatttt              aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa;;;;
  53.            ffffllllooooaaaatttt              ((((****aaaa))))[[[[llllddddaaaa****kkkk]]]],,,, ((((****bbbb))))[[[[llllddddaaaa****kkkk]]]],,,, ((((****cccc))))[[[[llllddddaaaa****nnnn]]]];;;;
  54.  
  55.      vvvvooooiiiidddd zzzzssssyyyyrrrr2222kkkk((((uuuupppplllloooo,,,,ttttrrrraaaannnnssss,,,,nnnn,,,,kkkk,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc))))
  56.            MMMMaaaattttrrrriiiixxxxTTTTrrrriiiiaaaannnngggglllleeee     uuuupppplllloooo;;;;
  57.            MMMMaaaattttrrrriiiixxxxTTTTrrrraaaannnnssssppppoooosssseeee    ttttrrrraaaannnnssss;;;;
  58.            IIIInnnntttteeeeggggeeeerrrr            nnnn,,,, kkkk,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc;;;;
  59.            ZZZZoooommmmpppplllleeeexxxx            aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa;;;;
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ____SSSSYYYYRRRR2222KKKK((((3333FFFF))))                                                          ____SSSSYYYYRRRR2222KKKK((((3333FFFF))))
  71.  
  72.  
  73.  
  74.            ZZZZoooommmmpppplllleeeexxxx            ((((****aaaa))))[[[[llllddddaaaa****kkkk]]]],,,, ((((****bbbb))))[[[[llllddddaaaa****kkkk]]]],,,, ((((****cccc))))[[[[llllddddaaaa****nnnn]]]];;;;
  75.  
  76.      vvvvooooiiiidddd ccccssssyyyyrrrr2222kkkk((((uuuupppplllloooo,,,,ttttrrrraaaannnnssss,,,,nnnn,,,,kkkk,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc))))
  77.            MMMMaaaattttrrrriiiixxxxTTTTrrrriiiiaaaannnngggglllleeee     uuuupppplllloooo;;;;
  78.            MMMMaaaattttrrrriiiixxxxTTTTrrrraaaannnnssssppppoooosssseeee    ttttrrrraaaannnnssss;;;;
  79.            IIIInnnntttteeeeggggeeeerrrr            nnnn,,,, kkkk,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc;;;;
  80.            CCCCoooommmmpppplllleeeexxxx            aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa;;;;
  81.            CCCCoooommmmpppplllleeeexxxx            ((((****aaaa))))[[[[llllddddaaaa****kkkk]]]],,,, ((((****bbbb))))[[[[llllddddaaaa****kkkk]]]],,,, ((((****cccc))))[[[[llllddddaaaa****nnnn]]]];;;;
  82.  
  83.  
  84.  
  85. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  86.      ddddssssyyyyrrrr2222kkkk ,,,, ssssssssyyyyrrrr2222kkkk ,,,, zzzzssssyyyyrrrr2222kkkk and ccccssssyyyyrrrr2222kkkk perform one of the matrix-matrix
  87.      operations
  88.  
  89.            C := alpha*A*B' + alpha*B*A' + beta*C,
  90.  
  91.      or
  92.  
  93.            C := alpha*A'*B + alpha*B'*A + beta*C,
  94.  
  95.      where alpha and beta are scalars, C is an n by n symmetric matrix and A
  96.      and B are n by k matrices in the first case and k by n matrices in the
  97.      second case.
  98.  
  99.  
  100. PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
  101.      uuuupppplllloooo    On entry, uuuupppplllloooo specifies whether the matrix is an upper or lower
  102.              triangular matrix as follows:
  103.  
  104.              FFFFOOOORRRRTTTTRRRRAAAANNNN
  105.              uplo = 'U' or 'u'   Only the upper triangular part of C
  106.                                  is to be referenced.
  107.              uplo = 'L' or 'l'   Only the lower triangular part of C
  108.                                  is to be referenced.
  109.  
  110.              CCCC
  111.              uplo = UpperTriangle     Only the upper triangular part of C
  112.                                       is to be referenced.
  113.              uplo = LowerTriangle     Only the lower triangular part of C
  114.                                       is to be referenced.
  115.  
  116.              Unchanged on exit.
  117.  
  118.      ttttrrrraaaannnnssss   On entry, ttttrrrraaaannnnssss specifies the operation to be performed as
  119.              follows:
  120.  
  121.              FFFFOOOORRRRTTTTRRRRAAAANNNN
  122.              trans = 'N' or 'n'       C := alpha*A*B' + alpha*B*A' + beta*C.
  123.              trans = 'T' or 't'       C := alpha*A'*B + alpha*B'*A + beta*C.
  124.  
  125.              CCCC
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. ____SSSSYYYYRRRR2222KKKK((((3333FFFF))))                                                          ____SSSSYYYYRRRR2222KKKK((((3333FFFF))))
  137.  
  138.  
  139.  
  140.              trans = NoTranspose      C := alpha*A*B' + alpha*B*A' + beta*C.
  141.              trans = Transpose        C := alpha*A'*B + alpha*B'*A + beta*C.
  142.  
  143.              Unchanged on exit.
  144.  
  145.      nnnn       On entry, nnnn specifies the order of the matrix C. nnnn must be at
  146.              least zero.
  147.              Unchanged on exit.
  148.  
  149.      kkkk       On entry with, trans = 'N' or 'n' or NoTranspose kkkk specifies the
  150.              number of columns of the matrices A and B, and on entry with
  151.              trans = 'T' or 't' or Transpose, kkkk specifies  the number of rows
  152.              of the matries A and B.  K must be at least zero.
  153.              Unchanged on exit.
  154.  
  155.      aaaallllpppphhhhaaaa   specifies the scalar alpha.
  156.              Unchanged on exit.
  157.  
  158.      aaaa       An array containing the matrix A.
  159.  
  160.              FFFFOOOORRRRTTTTRRRRAAAANNNN
  161.              Array of dimension (lda, ka).
  162.  
  163.              CCCC
  164.              A pointer to an array of size lda*ka.
  165.              See note below about array storage convention for C.
  166.  
  167.              kkkkaaaa is kkkk when transa = 'N' or 'n' or NoTranspose and is nnnn
  168.              otherwise.  Before entry with trans = 'N' or 'n' or NoTranspose,
  169.              the leading n by k part of the array aaaa must contain the matrix A,
  170.              otherwise the leading  k by n part of the array aaaa must contain
  171.              the matrix A.
  172.  
  173.              Unchanged on exit.
  174.  
  175.      llllddddaaaa     On entry, llllddddaaaa specifies the first dimension of aaaa as declared in
  176.              the calling (sub) program. When  transa = 'N' or 'n' or
  177.              NoTranspose, then lda must be at least max( 1, n ), otherwise lda
  178.              must be at least  max( 1, k ).
  179.              Unchanged on exit.
  180.  
  181.      bbbb       An array containing the matrix B.
  182.  
  183.              FFFFOOOORRRRTTTTRRRRAAAANNNN
  184.              Array of dimension (lda, kb).
  185.  
  186.              CCCC
  187.              A pointer to an array of size lda*kb.
  188.              See note below about array storage convention for C.
  189.  
  190.              kkkkbbbb is kkkk when transa = 'N' or 'n' or NoTranspose and is nnnn
  191.              otherwise.  Before entry with trans = 'N' or 'n' or NoTranspose,
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. ____SSSSYYYYRRRR2222KKKK((((3333FFFF))))                                                          ____SSSSYYYYRRRR2222KKKK((((3333FFFF))))
  203.  
  204.  
  205.  
  206.              the leading n by k part of the array bbbb must contain the matrix B,
  207.              otherwise the leading  k by n part of the array bbbb must contain
  208.              the matrix B.
  209.  
  210.              Unchanged on exit.
  211.  
  212.      llllddddbbbb     On entry, llllddddbbbb specifies the first dimension of bbbb as declared in
  213.              the calling (sub) program. When  trans = 'N' or 'n' or
  214.              NoTranspose, then ldb must be at least max( 1, n ), otherwise lda
  215.              must be at least  max( 1, k ).
  216.              Unchanged on exit.
  217.  
  218.      bbbbeeeettttaaaa    On entry, bbbbeeeettttaaaa specifies the scalar beta.
  219.              Unchanged on exit.
  220.  
  221.      cccc       An array containing the matrix C.
  222.  
  223.              FFFFOOOORRRRTTTTRRRRAAAANNNN
  224.              An array of dimension ( ldc, n ).
  225.  
  226.              CCCC
  227.              A pointer to an array of size ldc*n.
  228.              See note below about array storage convention for C.
  229.  
  230.              Before entry  with uplo = 'U' or 'u' or UpperTraingle, the
  231.              leading  n by n triangular part  of the  symmetric matrix  and
  232.              the strictly lower triangular part of C is not referenced.  On
  233.              exit, the upper triangular part of the array  C is overwritten by
  234.              the upper triangular part of the updated matrix.
  235.  
  236.              Before entry  with  uplo = 'L' or 'l',  the leading  n by n lower
  237.              triangular part of the array C must contain the lower triangular
  238.              part  of the  symmetric matrix  and the strictly upper triangular
  239.              part of C is not referenced.  On exit, the lower triangular part
  240.              of the array  C is overwritten by the lower triangular part of
  241.              the updated matrix.
  242.  
  243.      llllddddcccc     On entry, llllddddcccc specifies the first dimension of cccc as declared in
  244.              the calling (sub) program. llllddddcccc must be at least max( 1, n ).
  245.  
  246.              Unchanged on exit.
  247.  
  248.  
  249.  
  250. CCCC AAAARRRRRRRRAAAAYYYY SSSSTTTTOOOORRRRAAAAGGGGEEEE CCCCOOOONNNNVVVVEEEENNNNTTTTIIIIOOOONNNN
  251.        The matrices  are assumed  to be stored in a  oooonnnneeee ddddiiiimmmmeeeennnnssssiiiioooonnnnaaaallll CCCC aaaarrrrrrrraaaayyyy
  252.        in an analogous fashion as a Fortran array (column major). Therefore,
  253.        the element  A(i+1,j)  of matrix A  is stored  immediately  after the
  254.        element  A(i,j), while  A(i,j+1) is lda  elements apart from  A(i,j).
  255.        The element A(i,j) of the matrix can be accessed directly by reference
  256.        to  a[ (j-1)*lda + (i-1) ].
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. ____SSSSYYYYRRRR2222KKKK((((3333FFFF))))                                                          ____SSSSYYYYRRRR2222KKKK((((3333FFFF))))
  269.  
  270.  
  271.  
  272. AAAAUUUUTTTTHHHHOOOORRRRSSSS
  273.           Jack Dongarra, Argonne National Laboratory.
  274.           Iain Duff, AERE Harwell.
  275.           Jeremy Du Croz, Numerical Algorithms Group Ltd.
  276.           Sven Hammarling, Numerical Algorithms Group Ltd.
  277.  
  278.  
  279. TTTTUUUUNNNNIIIINNNNGGGG
  280.           Optimized and parallelized for SGI R3000, R4x00 and R8000 platforms.
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.